משרת סטודנט. מתחיל מתרגיל של 20 דקות במחשב.. שלב הבא ראיון טלפוני חצי שעה עליו פירטתי בהמשך. אחריו מטלת בית, ראיון על המטלה, וראיון עם מנהל בכיר. לבסוף ראיון עם מנהלת גיוס.
שאלות מתוך הראיון
המון שאלות בסיסיות על רשתות - פרוטוקולים. מעט שאלות הבנה על קוד ותכנות OOP. שאלה יחידה על סיבוכיות אלגוריתם bubble sort.
תפקיד PO .ראיון טלפוני שכולל שאלות טכניות, ראיון במשרדים עם 3 חברי צוות ומנהל מגייס, מבחן בית, עוד ראיון במשרדים- הצגת העבודה בית וראיונות עם עוד חברי צוות. ראיון hr ממליצים וראיון וידאו עם מנהל בחו"ל
שאלות מתוך הראיון
בעיקר על נסיון תעסוקתי, נותנים דוגמה לדרישה ורוצים לראות איך מפרקים לstories.
שאלה על decode
צריך לפתור על מחשב.
נתון:
main
ושתי פונקציות ממושות is_Decodable, decode.
is_Decodable מקבלת מחרוזת קקלט ומחזירה אמת אם המחרוזת היא מסוג
% ואז שתי מספרים אקסה דצימלים. אחרת מחזיר שקר.
decode מקבל מחרוזת ועבור % ושתי מספרים אקסדצמלים מחזיר את הערך האסקי.
לדוגמא %33 מחזיר 3
%25 מחזיר %
צריך לממש פונציה getUnescapedString שמקבלת קלט מחרוזת עם תווים וגודל.
צריך להחזיר את המחרוזת הנתונה כך שכל כל מה שמהצורה decode
מוחלף לערך האסקי שלו.
אם לאחר ההחלפה יש decode חדש - יש להחליף אותו גם עד שלא יישאר יותר decode.
דגשים:
התוכנית צריכה להתבצע בo(n)
עדיף אם אפשר לא להקצות זיכרון נוסף.
אם פותרים בצורה האופטמלית יש באג בmain הנתון.
לדוגמא:
aa%25%33%33bb
->
aa%33bb
->
aa3bb
תשובות
הוסף תשובה
|
לצפיה בתשובות
ספטמבר 2019
char* Decod::getUnescapedString(char* inputStr, i _len)
{
int k = 0;
unsigned char decRes = 0;
//char* outStr = new char[len]();
for (int i = 0; i < len -1; i++)
{
if (is_Decodable(&inputStr[i]) == false)
{
inputStr[k] = inputStr[i];
}
else
{
decRes = decode(&inputStr[i]);
inputStr[k] = decRes;
i = i + 2;
}
if (k > 1)
{
if (is_Decodable(&inputStr[k - 2]) == true)
{
decRes = decode(&inputStr[k - 2]);
k = k - 2;
inputStr[k] = decRes;
}
}
k++;
}
for (int i = k + 1; i < len - 1; i++)
{
inputStr[k] = 0;
}
*res_len = k + 1;
return inputStr;
מרץ 2021
void getUnescapedString(char* str)
{
int writeOffset = 0;
int origLen = strlen(str);